---
title: clsProviderTaxIDCollection
summary: API reference for clsProviderTaxIDCollection.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-21
library: SAIF.Business.View.Provider
reference_type: embedded
---

# clsProviderTaxIDCollection

`clsProviderTaxIDCollection` loads all tax-ID registrations for a provider using the retrieve-only criteria style (`clsRetrieveOnlyBusinessCriteria` with `SetRetrieveSQL`) rather than the full portal/criteria pattern used elsewhere in this library. It backs `clsProvider.TaxIDs` and is the collection `clsProvider.PayeeAddress` searches to find the tax ID effective today for address resolution.

## Purpose
- Retrieves the complete set of tax-ID records for a provider in one query using the `clsResultSet` result-handling pattern rather than a raw `IDataReader` (OP-08).
- Supplies the candidate tax IDs that `clsProvider.PayeeAddress` inspects when resolving a provider's payee address ([BR-PRV-002](../../business-rules.md#br-prv-002-payee-address-resolution-order)).

## Context
- Namespace: `SAIF.Business.View.Provider`
- Assembly/package: `SAIF.Business.View.Provider` (embedded/project-compiled); also distributed as the NuGet package `SAIF.BOF.Business.View.Provider`.

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `GetProviderTaxIDs` | `Shared Function GetProviderTaxIDs(dpi As IDataPortalInfo, providerSeqNum As Decimal) As clsProviderTaxIDCollection` | Loads all tax-ID registrations for the given provider (OP-08, SQL-PTAX-01, `:ProviderSeqNum`). |
| `Item` | `Default ReadOnly Property Item(index As Integer) As clsProviderTaxID` (from `clsBusinessCollection(Of clsProviderTaxID)`) | Returns the tax-ID record at the given position in the loaded collection. |
| `Count` | `ReadOnly Property Count As Integer` (from `clsBusinessCollection(Of clsProviderTaxID)`) | Number of tax-ID records loaded for the provider. |
| `IsValid` | `ReadOnly Property IsValid As Boolean` (overridden from collection base) | Reflects aggregate rule-check state of member tax IDs; not used to gate any write since none exist. |
| `IsDirty` | `ReadOnly Property IsDirty As Boolean` (overridden from collection base) | Indicates in-memory changes to member tax IDs; has no effect on persistence ([BR-DATA-001](../../business-rules.md#br-data-001-no-write-operations-are-supported)). |
| `Save` | `Function Save() As clsProviderTaxIDCollection` (overridden from collection base) | Calls `ApplyEdit()`/`MyBase.Save()` but cannot persist since the criteria supplies retrieve-only SQL via `SetRetrieveSQL` ([BR-DATA-001](../../business-rules.md#br-data-001-no-write-operations-are-supported)).* |

## Behavioral notes
- OP-08: the `Criteria` class inherits `clsRetrieveOnlyBusinessCriteria` and installs its query via `SetRetrieveSQL(...)` rather than overriding `RetrieveSQL` directly, as most other criteria in this library do; `BeforeRetrieve` sets `RequestType = DataRequestType.ResultSet` and `ID = "Retrieve Provider TaxID's"` before binding `:ProviderSeqNum`.
- `AfterRetrieve` iterates `clsResultSet.DataRow` rows (rather than a raw `IDataReader`) and calls `Load()` per instance.

## Constraints and usage notes
- Obtained via `clsProvider.TaxIDs` or directly via `GetProviderTaxIDs`; no create/update/delete path exists ([BR-DATA-001](../../business-rules.md#br-data-001-no-write-operations-are-supported)).

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- SAIF.Business.View.Provider/clsProviderTaxIDCollection.vb
